{
    title:  "Command Line",
    crumbs: [
        { 'Reference Guide': 'index.html' },
    ],
}
        <h2>Command Options</h2>
        <p>MakeMe is a command line tool that is invoked as:</p>
        <pre class="ui code segment">Usage: me [options] [targets|actions] ...</pre>
        <p>MakeMe command line options can be prefixed with either a single or double minus, i.e. <em>-switch</em> or
        <em>--switch</em>.</p>
        <table title="options" class="ui table class">
            <thead>
                <tr>
                    <th class="five wide">Option</th>
                    <th>Description</th></tr>
            </thead>
            <tbody>
                <tr>
                    <td>--benchmark</td>
                    <td>Measure the elapsed time to run MakeMe.</td>
                </tr>
                <tr>
                    <td>--configure path-to-source</td>
                    <td><p>Configure the project to prepare for building. This configures MakeMe for building the project
                        based on the instructions specified in a <em>'main.me</em> located in the specified path source
                        tree.  When run, 'me' will create a platform configuration MakeMe file, a build output directory and
                        me.h header. The configuration directory is of the form: OS-ARCH-PROFILE where OS may be
                        freebsd, linux, macosx, solaris, vxworks, windows and ARCH is arm, mips, ppc, x64 or x86.
                        PROFILE is typically set to debug or release. For example: <em>macosx-x86_64-debug</em> The
                        configuration MakeMe file omits the PROFILE. For example: <em>linux-x86.me</em>.</p>
                        <p>MakeMe will use the settings.required and settings.optional properties in the main.me for a
                        list of packages to use. When configuring, MakeMe will search for these packages and will
                        create definitions in the configuration MakeMe file for later use.</p>
                    </td>
                </tr>
                    <tr><td>--continue</td>
                        <td>Continue to build despite any build errors. Normal operation is to stop building if any
                            build errors are encountered.</td>
                </tr>
                <tr>
                    <td>--debug</td>
                    <td>Same as --profile debug</td>
                </tr>
                <tr>
                    <td>--diagnose</td>
                    <td>Run MakeMe with stack backtrace display on errors.</td>
                </tr>
                <tr>
                    <td>--dump </td>
                    <td>Dump the aggregate MakeMe configuration into a single dump MakeMe file.</td>
                </tr>
                <tr>
                    <td>--file filename</td>
                    <td>Use the alternate named file instead of start.me or main.me.</td>
                </tr>
                <tr>
                    <td>--force</td>
                    <td>Override warnings and proceed with the operation.</td>
                </tr>
                <tr>
                    <td class="nowrap">--gen [make|nmake|sh|vs|xcode]</td>
                    <td>Generate project files for the current platform. This will generate project files under
                        the <em>projects</em> directory. The projects are based on the current configuration. If
                        cross-generating projects, you will typically need to also use -configure.</td>
                </tr>
                <tr>
                    <td>--keep </td>
                    <td>Keep some intermediate build files. This is currently used by some documentation generation
                        targets.</td> </tr>
                <tr>
                    <td>--log logName[:logLevel]</td>
                    <td>Specify a file to log internal execution messages. MakeMe will log execution related trace to the
                        log file. The log level specifies the desired verbosity of output. Level 0 is the least verbose
                        and level 9 is the most. The <em>-v</em> switch is an alias for <em>--log stderr:2</em>.</td>
                </tr>
                <tr>
                    <td>--nocross</td>
                    <td>Don't cross-build. Build only for the development system.</td>
                </tr>
                <tr>
                    <td>--nolocal</td>
                    <td>Don't build for the development system. Build only for the cross platform targets.</td>
                </tr>
                <tr>
                    <td>--out path</td>
                    <td>Save MakeMe trace output to a file instead of displaying to the console.</td>
                </tr>
                <tr>
                    <td>--platform os-arch</td>
                    <td><p>Add a platform to build for cross-compilation. Multiple platforms can be added. You may use
                        <em>local</em> for the local platform. Options specified after the platform apply to the prior
                        platform. For example:</p>
                        <p>me --platform linux-x86 --without all --platform linux-arm --with ejscript configure</p></td>
                </tr>
                <tr>
                    <td class="nowrap">--profile [debug|release|...]</td>
                    <td>Use the specified profile when building. This options is provided once when configuring and the
                        result is saved in the plat- form.profile property in the configuration MakeMe file. Custom
                        profiles can be added to the main.me or start.me files.</td> 
                </tr>
                <tr>
                    <td>--quiet</td>
                    <td>Quiet operation. Suppresses output trace.</td>
                </tr>
                <tr>
                    <td>--set key=value</td>
                    <td>Set a settings property to a given value. For example: <em>me -set version=1.0</em> will update the
                        settings.version property. Use this when running <em>me configure</em> to persist your 
                        changes in the configuration MakeMe file.</td>
                </tr>
                <tr>
                    <td>--show </td>
                    <td>Show the actual commands executed by MakeMe.</td>
                </tr>
                <tr>
                    <td>--static </td>
                    <td>Build using static linking instead of creating shared libraries.</td>
                </tr>
                <tr>
                    <td>--rebuild</td>
                    <td>Rebuild the specified targets. Can also use <em>me rebuild</em>.</td>
                </tr>
                <tr>
                    <td>--release</td>
                    <td>Select the release profile. Same as --profile release.</td>
                </tr>
                <tr>
                    <td>--unset key=value</td>
                    <td>Clear a settings property. Use this when running <em>me configure</em> to persist your changes in
                        the configuration MakeMe file.</td> 
                </tr>
                <tr>
                    <td>--version</td>
                    <td>Print the ejs command version and exit.</td>
                </tr>
                <tr>
                    <td>--verbose</td>
                    <td>Run in verbose mode with more trace about MakeMe activities.</td>
                </tr>
                <tr>
                    <td>--with NAME[=path]</td>
                    <td>Build with the named configurable component located at the optional path. 
                        If the path is omitted, a search is performed for the component at default locations.</td>
                </tr>
                <tr>
                    <td>--without NAME</td>
                    <td>Build without the named component.</td>
                </tr>
            </tbody>
        </table>
